package one_07_OOP.demo01;

public class demo01 {
    public static void main(String[] args) {
// 类与类之间的方法调用
        // 静态方法：有static关键字
        // 可以直接调用
        demo01Student.say();

        // 非静态方法：没有static关键字
        // 必须先new，在调用
        demo01Student s = new demo01Student();
        s.cry();
    }

// 类中方法之间的调用
    // 假设同一个类中有俩个方法,a方法和b方法，a和b都是非静态方法，相互之间可以直接调用。
    public void a(){
        b();
    }
    public void b(){
        a();
    }

    // a和b都是静态方法,相互之间可以直接调用.
    public static void c(){
        d();
    }
    public static void d(){
        c();
    }

    // a静态方法,b是非静态方法，a方法中不能直接调用b方法,但是b方法中可以直接调用a方法. 静态方法不能调用非静态方法！
    public static void e(){
        // f(); // 报错
    }
    public void f(){
        e();
    }
    /*
    原因：
        static是和类一起加载的；没有static的方法，类实例化之后才加载
    */
}
